Present-day Internet communications represent the synthesis of technical developments begun in the 1960s—the development of a system to support communications between different United States military computer networks, and the subsequent development of a system to support the communication between research computer networks at United States universities. These technological developments would subsequently revolutionize the world of computing.
The Internet, like so many other high tech developments, grew from research originally performed by the United States Department of Defense. In the 1960s, Defense Department officials began to notice that the military was accumulating a large collection of computers—some of which were connected to large open computer networks and others that were connected to smaller closed computer networks. A network is a collection of computers or computer-like devices communicating across a common transmission medium. Computers on the Defense Department's open computer networks, however, could not communicate with the other military computers on the closed systems.
Defense Department officials requested that a system be built to permit communication between these different computer networks. The Defense Department recognized, however, that a single centralized system would be vulnerable to missile attacks or sabotage. Accordingly, the Defense Department mandated that the system to be used for communication between these military computer networks be decentralized and that no critical services be concentrated in a few, vulnerable failure points. In order to achieve these goals, the Defense Department established a decentralized standard protocol for communication between network computers.
A few years later, the National Science Foundation wanted to connect network computers at various research institutions across the country. The NSF adopted the Defense Department's protocol for communication, and this combination of research computer networks would eventually evolve into the Internet.
Internet Protocols
The Defense Department's communication protocol governing data transmission between computers on different networks was called the Internet Protocol (IP) standard. The IP standard now supports communications between computers and networks on the Internet. The IP standard identifies the types of services to be provided to users, and specifies the mechanisms needed to support these services. The IP standard also describes the upper and lower system interfaces, defines the services to be provided on these interfaces, and outlines the execution environment for services needed in the system.
A transmission protocol, called the Transmission Control Protocol (TCP), was also developed to provide connection-oriented, end-to-end data transmission between packet-switched computer networks. The combination of TCP with IP (TCP/IP) forms a system or suite of protocols for data transfer and communication between computers on the Internet. The TCP/IP standard has become mandatory for use in all packet switching networks that connect or have the potential for utilizing connectivity across network or sub-network boundaries.
The TCP/IP Protocol
In a typical communications scenario, data is transmitted from an applications program in a first computer, through the first computer's network hardware, and across the transmission medium to the intended destination on the Internet. After receipt at a destination computer network, the data is transmitted through the destination network to a second computer. The second computer then interprets the communication using the identical protocols on a similar application program. Because of the standard protocols used in Internet communications, the TCP/IP protocol on the second computer should decode the transmitted information into the original data transmitted by the first computer.
To fully support Internet communications, the TCP/IP protocol system must perform the following tasks: (1) dividing messages into manageable chunks of data to pass efficiently through the transmission medium, (2) interfacing the network adapter hardware, (3) addressing target data to a specified computer and allowing the computer to acknowledge receipt of the data or recognize the absence of a message it was supposed to have received, and (4) routing data to a destination computer even if the source and destination computers are on different physical networks. The TCP/IP network protocol must also error check and control data flow, and TCP/IP protocol supports many important features such as logical addressing, high-level naming service, and application program support.
The TCP/IP Protocol Layers
One of the rules in TCP/IP communications is that a computer user does not need to get involved with details of data communication. In order to accomplish this goal, the TCP/IP standard imposes a layered communications system structure. All the layers are located on each computer in the network, and each module or layer is a separate component that theoretically functions independent of the other layers.
TCP/IP and its related protocols form a standardized system for defining how data should be processed, transmitted and received on the Internet. TCP/IP defines the network communication process, and more importantly, defines how a unit of data should look and what information the message should contain so that the receiving computer can interpret the message correctly. Because the standardized layer design of TCP/IP, a consistent conversion of base data is ensured regardless of the version or vendor of the TCP/IP conversion software.
The TCP/IP protocol suite is the interface between the application programs on the computer and the data communication hardware. Each layer is responsible for a separate task or routine in the network communication. The Protocol Layers for the Basic Networking Scheme (TCP/UDP and IP) and the OSI Protocol Layers are identified in Table I.
TABLE IProtocol Layers forProtocolBasic NetworkingProtocol LayerLayerScheme(OSI)7NetworkApplication6ApplicationsPresentation5Session4TCP/UDPTransport3IPNetwork2Data LinkData Link1PhysicalPhysical
When a first computer transmits a data message to a second computer on the Internet—either sending a message or requesting information—the TCP/IP Protocol Layers in the first computer prepare the base data for transmission to a second computer by adding additional information to the base data. New pieces of information (e.g. headers) are added to the base data as the base data descends through each layer in the protocol. After processing, the base data with various headers will form a fully structured datagram under the TCP/IP protocol.
After the base data has been processed by all the layers in the protocol, it is ready for transmission across the Internet to the second computer. The datagram is transmitted on the Internet and should be received by the intended destination computer. For the second computer to interpret the incoming data, the same set of TCP/IP protocol layers are used by the second computer—only in reverse order. As the transmitted information ascends through the protocol layers in the second computer, each protocol level strips away the added information (e.g. headers) to leave the base data in the applications program of the second computer.
In the OSI model, the Application Layer (level 7) supports the transfer of information that is specific to the computer program being run by a user. Some application-layer protocols define how electronic mail is to be exchanged, while other Application Layer protocols define how files are to be transferred from one computer to another or how World Wide Web pages are to be fetched by a server from a browser page.
The Presentation Layer (level 6) in the OSI model defines the syntax and semantics of the information being exchanged by an applications program. This means that the presentation-layer protocol defines how the integers, text messages, and other data of an application program are to be encoded and transmitted over the network. This layer supports computers using different types of hardware and operating systems thereby allowing all computers to exchange information with lower protocol layers regardless of their particular method of storing or processing data.
The Session Layer (level 5) delivers a stream of data to the Transport Layer based upon the application-oriented tasks being performed in the higher level layers. Some Session Layer protocols provide periodic checkpoints allowing resumption of a communication in the event of a catastrophic network failure. In real world environments, the Application, Presentation, and Session Layers (Levels 5, 6 and 7) may be viewed as a single layer called the Application Layer.
The Transport Layer (level 4) is responsible for preparing the data for packet transmission on the Network Layer. The Transport Layer protocol defines the methods for detecting errors in a transmission of segments and for correcting these errors. The Transport Layer often uses the TCP protocol because it has a high degree of reliability and error checking capabilities. The Transport Layer could also use the UDP protocol, which is a simple interface to the Network Layer. While quicker than the TCP protocol, the UDP does not necessarily provide for increased reliability in data transmission.
In the OSI model, the Network Layer provides the interface between the physical network defined by Layers 1 and 2 (the Data Link Layer and the Physical Layer) and the higher level protocol levels defined by Layers 4–7 (the Transport, Session, Presentation and Application Layers). The Network Layer uses the frame transmission facility provided by the Data Link Layer to move data packets from their original source to their ultimate destination on the Internet.
The Network Layer supports the key TCP/IP protocols for logical addressing and routing of data. According to the IP protocol, the Network Layer formats data and addresses the data for transmission to the destination network or sub-network based on physical hardware addresses. The Network Layer protocol also defines how network devices discover the existence of other network devices and computers, and how packets find their final destination. The Network Layer also provides error checking for data delivered on the physical network.
The Data Link Layer (Level 2) provides an interface with the network adapter and maintains logical links for the network. The Data Link Layer also uses the raw bit transmission facility provided by the Physical Layer to move frames of data from one computer to neighboring computers on the same network or sub-network. The Data Link Layer protocol defines methods for ensuring the reliability of each data frame and also arbitrates access to those media types that are shared by many computers.
The Physical Layer (Level 1) moves raw data bits across a communication medium. A Physical Layer defines the electrical and mechanical characteristics of the communication media, the bit rate, the voltages, and any other parameter necessary for communication of raw data bits on the communication system. The Physical Layer converts the data stream comprising electric or analog signals and oversees the transmission of data thereon.
Tasks performed in protocol layers 2 and 3 play an important role in interfacing the high-level application program levels with the physical communications network levels. By design, the tasks performed on these lower level protocols are automated because they operate on low-level data structures and these low-level tasks control the physical hardware on the communications system. These lower level layers operate virtually by themselves with no direct user interaction or control—primarily so as to not trouble the computer user with the details of data bit transfer or routing path determinations.
TCP/IP Addressing and Routing
A computer operating on a network is assigned a unique physical address. On a Local Area Network (“LAN”), the physical address of the computer is a number given to computer's network adapter card. Hardware LAN protocols use this physical address to deliver packets of data to computers on the LAN.
On the Internet, the TCP/IP protocol routes data packets using logical addressing. Logical addresses are generated by the network software in the Network Layer. Specifically, a logical address in the TCP/IP network is translated into a corresponding physical address using the ARP (Address Resolution Protocol) and RARP (Reverse Address Resolution Protocol) protocols in the Network Layer.
The TCP/IP's logical address is also called an IP address. The IP address can include: (1) a network ID number identifying a network, (2) a sub-network ID number identifying a sub-network on the network, and, (3) a host ID number identifying a particular computer on the sub-network. The IP addressing scheme imposes a sensible addressing scheme that reflects the internal organization of the network or sub-network.
A computer network is often subdivided into smaller sub-networks. The computer network is divided in this manner to increase data transmission efficiency and reduce overall network traffic. Routers are used to regulate the flow of data into and out of designated sub-networks of the computer network.
A router interprets the logical address information of a data packet, such as an IP address, and directs the data packet across the network to its intended destination. Data addressed between computers on the sub-network does not pass through the router to the greater network, and therefore does not clutter the transmission lines of the greater network. If data is addressed to a computer outside the sub-network, however, the router forwards the data onto the larger network.
The TCP/IP network includes protocols that define how routers will determine the path for data through the network. Routing decisions are based upon information in the IP packet header and entries in each router's routing table. A routing table possesses sufficient information for a router to make a determination on whether to accept the communicated information on behalf of a destination computer, or pass the information onto another router in the network. The routing table also permits the router to determine where the information should be forwarded within the network or sub-network.
The routing table can be configured manually with routing table entries or a dynamic routing protocol that can accommodate changing network topologies—network architecture or network layouts, routers, and interconnections between hosts and routers. In a dynamic routing protocol, a router advertises reachability when it sends updated routing information to a second router claiming that the first router is capable of reaching one or more destination addresses. Advertising accessibility is important to the process of receiving, directing and re-directing data packets on the Internet.